-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regression tests and fix for issue 116 #142
base: 5.6
Are you sure you want to change the base?
Conversation
(Unnecessary certification failures on TOI DDLs) It looks like the provider api doesn't permit TOI replication *without any keys*, which is what we would ideally do here, so we instead just supply a table key that should not match any existing table. The regression tests and fix target 3 specific table creation code paths (and do not address alter statements or other potential related issues): 1. Basic CREATE TABLE statements 2. CREATE TABLE LIKE, where the source table is a temporary table 3. CREATE TABLE LIKE, where the source table is not a temporary table
Hello. Thank you very much for pushing the tests. I have a few questions: 1 What about CREATE TABLE ... SELECT . Does it matter that the SELECT part involves tables?
|
Hi Philip, Regarding CREATE TABLE AS SELECT, this is not addressed by the pull request currently, since as far as I can make out this doesn't actually appear to be set up correctly for replication. Try doing the following on a test cluster, for example: create table t1 (f1 integer) ENGINE=InnoDB; Regarding your question about potential new conflicts on WSREP_NONEXISTANT_TABLE, I don't think this is an issue because this could only ever happen between create table statements, which are TOI anyway. (Definitely something to be careful for, through, if ever generalising this approach. Fixing the provider to support transactions without any keys would avoid this kind of concern and be generally cleaner, if that is possible!) |
Unfortunately this fix is not safe. With the following MTR test
and the following patch to galera:
it is possible to crash slave reliably with error
This indicates that dependency calculation in certification on galera side is not able to figure out dependency between TOI CREATE TABLE and following autocommit transaction on that table. |
Ok, thanks Teemu! |
Unfortunately, yes. It looks like this hackish fix does not actually work and we'll need to devise a proper one. But I feel that it will have to be done at the cost of complicating the wsrep API. |
(Unnecessary certification failures on TOI DDLs)
It looks like the provider api doesn't permit TOI replication without any keys,
which is what we would ideally do here, so we instead just supply a table key that should not match any existing table.
The regression tests and fix target 3 specific table creation code paths (and do not address alter statements or other potential related issues):